export {};
// 排除T中包含的U属性，U可以是任意属性，如果U在T中，则设置never
type MyExclude<T, U> = T extends U ? never : T;

type T0 = MyExclude<"a" | "b" | "c", "a">; // "b" | "c"
type T1 = MyExclude<"a" | "b" | "c", "a" | "b">; // "c"
type T2 = MyExclude<string | number | (() => void), Function>; // string | number
